#include "Empleado.h"

Empleado::Empleado(int nro, std::string apellido)
{
	this->nroSocial = nro;
	this->apellido = apellido;
}

Empleado::Empleado(){

this->nroSocial = 0;
	this->apellido = "";
}

Bytes Empleado::serializarse(){

	Bytes objetoSerializado;
	objetoSerializado.agregar(&this->nroSocial,sizeof(int),0);
	objetoSerializado.agregarAlFinal(this->apellido);

	return objetoSerializado;


}
    bool Empleado::hidratarse(const Bytes& dato){

	unsigned int largoNroSocial = sizeof(int);
	unsigned int largoApellido = dato.getTamanio() - largoNroSocial;
	unsigned int largo =  largoNroSocial + largoApellido;

	if (dato.getTamanio() != largo) {
		return false;
	}

	dato.leer(&this->nroSocial,0,largoNroSocial);
	char* buffer = new char[largoApellido+1];
	dato.leer(buffer,largoNroSocial,largoApellido);
	buffer[largoApellido] = '\0';
	this->apellido = buffer;
	delete buffer;

	return true;

    }

    int Empleado::getNroSocial(){
    return this->nroSocial;
    }
    std::string Empleado::getApellido(){
    return apellido;
    }

    void Empleado::setNroSocial(int valor){
    this->nroSocial = valor;
    }
    void Empleado::setApellido(std::string apellido){
    this->apellido = apellido;
    }

Empleado::~Empleado()
{
}
